런어데이 보카 개발로그

2019년 5월 (5월 15일 시작)

  • 1주 차 초기 기획 : 100명을 대상으로, 유저에게 돈을 주면 정말로 동기부여에 도움이 되는지를 테스트해보자는 간단한 아이디어로 시작되었습니다. flash card 같은 모습인데, 하루 30개 정도의 단어를 주고, 24시간 안에 테스트를 시키고, 테스트의 결과에 따라서 돈을 지급하는 아이디어였습니다. 초기에는 정말 미니 프로젝트를 생각했기 때문에, DB를 구축하지 않고, 에어테이블에서 제공하는 API만을 이용하려는 계획이었습니다. 이때까지만 해도 테스트는 객관식이 아니라 주관식으로 치러질 예정이었습니다. 간단하게 학습 페이지와, 주관식 테스트 정도가 구축되었습니다.

  • 2주 차 객관식 문제 : 주관식만 아니라 객관식도 문제를 주자는 이야기가 나왔고, 객관식 보기를 어떻게 구성할지가 약간 까다로운 사항이었습니다. 회원 가입 기능 등이 추가되었고, circleCI를 이용한 자동 배포환경도 이때 구축되었습니다.

  • 3주 차 백엔드 작업, 유저 로그인 : 클라이언트 상에서 mock 데이터만을 다루던 것에서 백엔드 작업으로 넘어갔습니다. DB를 MYSQL로 구축하기로 했고, DB 테이블이 확정되었습니다. 에어테이블은 컨텐츠 제작자의 편의를 위해서 사용되었고, 에어테이블의 데이터를 스케쥴러를 통해 DB에 가져옵니다.

2019년 6월 (6월 25일 화요일 라이브 서비스 시작)

  • 4주 차 버그 수정 및 백엔드 작업

  • 5주 차 커스텀 보기 설정 및 프론트 모바일 환경 작업 : 기존까지는 객관식 보기의 경우는 정답을 제외한 단어들은 그 날 코스에 들어있는 다른 단어들을 랜덤으로 가져오는 방식으로 처리했습니다. 하지만, 문제가 생겼는데 긴 문장의 경우는 그렇게 하자 정답을 맞추기가 너무 쉬워진 겁니다. 그래서, 객관식 보기 db를 별도로 만들어서 거기에 직접 객관식 보기를 설정할 수 있는 기능이 추가되었습니다.

  • 6주 차 실제 서비스 직전 디테일 작업

  • 7주 차 실제 서비스 시작 : 서비스가 되는 동안에는 유저의 접속 시간은 천차만별이었어요. 물론, 문자 발송이 이루어지는 12시의 접속률이 가장 높긴 했습니다. 프론트와 다르게 백엔드는 자동 배포 세팅을 해놓지 않았고, 그래서 백엔드 서버 배포에 대한 진지하게 고민을 하지 않은 것이 가장 고통스러웠습니다. 런어데이보카는 첫 번째 테스트에서만 돈을 지급하기 때문에, 유저가 테스트를 보는데 서버를 내려버리면, 유저는 그 날 벌 돈을 잃게 되는 거라, 항의를 받을 수밖에 없습니다. 따라서, 한창 유저가 많았을 때는 어쩔 수 없이 유저가 가장 접속이 뜸한(구글 애널리틱스 기준) 새벽 시간에 서버 업데이트를 하곤 했습니다.

2019년 7월

  • 8주 차 출금 기능 추가 : 1,000원부터 출금을 할 수 있기 때문에, 출금 기능은 최소한 서비스 개시후 10일이 되기 전에만 추가가 되는 기능이라 미뤄지고 있었습니다. 막상 작업해보니, 돈을 다루는 부분이어서 엄청 신경써야 하는 작업이었습니다. 또한, 관리 편의성을 위한 작업도 생각을 해야 했습니다. 관리자에게는 출금 신청에 대한 알림도 있어야 하고, 유저에게도 출금 신청이 잘 처리 됐다는 문자도 보내줘야 합니다. 생각보다 작업량이 많아서, 시간을 맞추느라 힘들었던 기억이 있습니다. 예상대로 1,000원 모이자마자 출금하는 분도 있었습니다.

  • 9주 차 단어 발음 지원(TTS) 추가 : 가장 뿌듯했던 작업 중 하나입니다. 사전에 검색으로 자료 확보드를 해놓아서 짧은 시간내에 단어 발음을 지원할 수 있었습니다. TTS의 품질이 무척 좋아서 놀랐던 기억이 있습니다. 구글 웨이브넷이 적용된 음성의 경우는 모르고 듣는다면, 사람과 구별할 수 없는 수준이었거든요.

  • 10주 차 대시 보드 추가 : 구글 애널리틱스를 깔아놓았고 DB를 통해서 보면 됐지만, 현재 각 유저가 얼마나 테스트 하고 있는지, 가장 점수가 높은 유저는 누구인지 등의 정보를 좀 더 편하게 보고 싶다는 욕구가 들었습니다. 기존에 어느 정도 코드 작업량이 있어서, 생각보다 빠르게 대시보드를 만들 수 있었습니다.

  • 11주 차 런어데이 보카의 앞날에 대한 고민 및 커리큘럼 확장 작업 준비

2019년 8월 (8월 14일에 다른 프로젝트로 넘어가면서 작업 중단)

  • 12주 차 커리큘럼 확장 작업
  • 13주 차 커리큘럼 확장 및 영상을 활용한 코스 작업

후기

런어데이 보카는 초기에는 미니 프로젝트로 기획되었기 때문에, 다양한 커리큘럼을 다루진 않을 거라는 가정하에 만들어졌습니다. 실 서비스 중에, 다양한 커리큘럼을 다루는 단어 웹앱으로 만들어보자는 의견이 있었습니다.

커리큘럼 화면

당시 준비하던 커리큘럼

영어 단어뿐만 아니라 스페인어나, 프랑스어, 아재 개그 등의 컨텐츠를 다뤄보기로 했고, 단어 웹앱의 특성을 살릴 수 있게 하기 위해서는 여러 코스를 아우르는 커리큘럼 카테고리가 필요했습니다. 따라서 후반기 작업에선 커리큘럼 작업이 주가 되었습니다.

모바일 비디오 코스 퀴즈 화면
모바일 뷰에서 보이는 비디오 코스 퀴즈

비디오 코스(영상을 보고 학습 후에, 테스트를 보는 기능)등 단조로운 학습 패턴을 벗어나기 위한 작업도 진행했죠. 하지만, 컨텐츠 제작자가 회사를 떠나게 되면서, 컨텐츠 수급의 어려움을 겪게 되고, 추가 된 작업은 유저에게 배포되진 못했습니다. 회사에서는 메인 프로젝트에 집중해야 하는 상황이었기에 자원을 더 할애할 수 없었습니다. 조금 더 시간적 여력이 있었다면, SSR도 적용시켜볼 수 있고, 구글 광고 등을 통한 비지니스 모델을 마련할 수 있지 않았을까 하는 아쉬움도 있습니다. 물론, 지금처럼 계속 유저에게 돈을 주는 방식으로는 할 수 없었을 겁니다. 유저에게 돈을 지급하지 않고, 컨텐츠만 제공한다면 유저가 계속 학습을 했을지도 궁금하네요.

기타 등등

  • 시퀄라이즈를 사용했을 때 썩 유쾌하지 않았던 경험이 있고, 작업 기한에 맞추기 위해서, ORM 대신 쿼리 빌더인 knex를 사용했습니다. 이 부분에 대해서는 따로 포스팅 하려 합니다.

  • 구글 TTS 를 사용하여 발음 지원을 했습니다. 음성 머신 러닝 기술을 사용한 WaveNet 버전 음성을 사용하여, 사람과 구별하기 어려운 수준의 음성을 제공했습니다. 구글 TTS를 사용하여 음성을 MP3 파일로 받은 후, 그걸 S3에 전송하여 링크를 DB에 입력한 후 서빙하였습니다. 구글 TTS는 100만자까지는 무료로 제공되기에, S3 비용 외에는 추가 비용이 들지 않았습니다.


lastrites2018
Written bylastrites2018
I explain with words and code.

👉삽질의 역사는 노션 WIKI에서